In order to manage large quantities of data, computer software applications, such as spreadsheet and database applications, have been developed to organize and store the data in a logical manner. Typical spreadsheet and database applications comprise a large number of records of information, wherein each record comprises a predetermined number of fields. In the context of a database, a database management system is typically used to provide the software tools to manipulate the database more simply. Example database management systems include Microsoft® Access and Microsoft® SQL Server, among others.
A typical database management system provides the user the ability to add, modify and/or delete data, query data using filters, and report records in the database. Data in databases and spreadsheets is typically represented using rows and columns. A field is an intersection of a row and a column. A column may thus include a plurality of fields. One skilled in the art will appreciate that many other types of data can be kept and displayed in databases and spreadsheets using a table. In general, any given field may only contain a single, scalar data value. Data queries typically take the form of a query language, such as Structured Query Language (SQL). Such queries may be performed on locally held data, or submitted to a database server for execution.
Given the relative power and prevalence of database and spreadsheet applications, many users wish to integrate and view data from different sources. For instance, users may want to combine spreadsheet data with their database data to generate a report. Unfortunately, since data from different sources may be in different formats, integration remains difficult. Generating an integrated report therefore may involve manually generating queries for each disparate data source and/or manually transforming all data into common format. Bringing together data from disparate sources into a common view can be intractable, potentially involving retrieving data from different physical sites in a network, relating subsets of data together, linking fields in subsets to each other, and other tasks which generally require an adept user with intimate knowledge of each data source.
It is with respect to these considerations and others that the present invention has been made.